A movie generally consists of a set of tracks slaved to a movie clock. In a typical movie, the array of tracks includes a video track and an audio track. A video track consists of a sequence of samples of video data. An audio track is a sequence of samples of audio data.
Besides video and audio tracks, movies may also include tracks which store other types of information. For example, a movie may also include a text track that contains text for subtitles, a music track separate from the main audio track, and a time code track.
FIG. 1 illustrates a typical movie 100. Movie 100 includes a video track 122 that includes a sequence of video samples 102, 104, 106, 108 and 110. Movie 100 also includes a sound track 124 that includes a sequence of audio samples 112, 114, 116, 118 and 120. When movie 100 is played, playback of all of the tracks of the movie 100 are synchronized based on a movie clock. For example, at a time T1 of the movie clock, video sample 102 is being displayed and audio sample 112 is being played. At a time T2 of the movie clock, the video sample 104 is being displayed and audio sample 114 is being played. The audio and video samples that are being played at any given time on the movie clock remain the same for each performance of movie 100.
If one track of a movie is edited, some of the other tracks of the movie may also have to be edited. Consider, for example, a movie in which a character is giving a speech with the national anthem playing in the background. If one wishes to delete a portion of the speech from the movie, the corresponding sequence of video must be cut from the video track, the corresponding sequence of audio must be cut from the audio track, and the corresponding text sequence must be cut from the text track. However, to maintain the continuity and integrity of the national anthem, the corresponding music track should not be cut.
Flat movie formats provide no mechanism for keeping track of relationships between tracks. Because the editing of one track of a movie may require the editing of some but not all of the other tracks in the movie, movie editing can quickly become a difficult and complex task. Complex editing operations are even more complicated. For example, during an operation in which one movie is created by splicing together tracks of other movies, it may be virtually impossible to keep track of which tracks should and should not be edited together.
Based on the foregoing, it is desirable to simplify the movie editing process. It is further desirable to expand the application of movies beyond simple deterministic time-based media playback applications.